package com.lonely.order.domain.vo.order;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 生产订单查询参数响应实体
 *
 * @author fzzf
 */
@Data
public class QueryProduceOrderPageVO implements Serializable {

    /**
     * 主键id
     */
    private Long id;

    /**
     * 接单时间
     */
    private Date acceptOrderTime;

    /**
     * 目标交期
     */
    private Date deliveryTime;

    /**
     * 设计款号
     */
    private String designCode;

    /**
     * 工厂ID
     */
    private Long factoryId;

    /**
     * 工厂名称
     */
    private String factoryName;

    /**
     * 是否首单
     */
    private Integer isFirst;

    /**
     * 优先级
     */
    private Integer isUrgent;

    /**
     * 生产单价
     */
    private String orderPrice;

    /**
     * 订单类型
     */
    private String orderType;

    /**
     * 订单类型int
     */
    private Integer orderTypeInt;

    /**
     * 图片
     */
    private String pic;

    /**
     * 下单时间
     */
    private Date placeOrderTime;

    /**
     * 生产制单号
     */
    private String produceOrderId;

    /**
     * 生产方
     */
    private String producer;

    /**
     * 订单件数
     */
    private Integer quantity;

    /**
     * 参考sku
     */
    private String refSku;

    /**
     * 大货sku
     */
    private String sku;

    /**
     * 订单状态
     */
    private String status;

    /**
     * 订单状态整型
     */
    private Integer statusInt;

    /**
     * 备货类型
     */
    private String stockType;

    /**
     * 备货类型整型
     */
    private String stockTypeInt;

    /**
     * 订单来源
     */
    private Integer orderSource;

    /**
     * 标签列表
     */
    private List<Tag> tags;

    /**
     * 车间分单对应工厂名称
     */
    private String workshopSplitFactoryName;

    /**
     * 车间分单对应产线名称
     */
    private String workshopSplitProductionLineName;

    /**
     * 尾部分单对应工厂名称
     */
    private String tailSplitFactoryName;

    /**
     * 尾部分单对应产线名称
     */
    private String tailSplitProductionLineName;

    /**
     * 计划单号
     */
    private String planOrderNumber;

    /**
     * 标签
     */
    @Data
    @Accessors(chain = true)
    public static class Tag implements Serializable {

        /**
         * 标签id
         */
        private Long tagId;

        /**
         * 标签名称
         */
        private String tagName;

        /**
         * 颜色
         */
        private String color = "default";

        /**
         * 是否是订单标签
         */
        private Boolean isOrderTag = false;
    }

}
